Concepedia

Concept

software analysis

Parents

Children

107.1K

Publications

5.9M

Citations

137.5K

Authors

10.7K

Institutions

Formal Methods and Static Analysis

1974 - 1980

During 1974–1980, formal methods and verification became central to software correctness, with approaches ranging from a logical basis, symbolic execution, termination proofs, to automated program verification. Reliability modeling and quality evaluation advanced through empirical reliability studies and quantitative metrics, including software reliability theory, empirical models, and quality factors. Testing methodology emphasized data-driven test generation, fault distribution, and fault causation analyses to benchmark and improve software quality. Software engineering practice and analysis progressed through structured analysis for requirements definition, process-oriented design, and static analysis of early language programs to guide practice. Historical Significance: These breakthroughs established a paradigm in which mathematical reasoning and rigorous analysis underlie software correctness, influencing early program analysis, static analysis, and inspection-based quality assurance for decades to come. The integration of formal reasoning with empirical reliability and testing created a durable foundation for subsequent software engineering methods and tooling, shaping early QA standards and the design of future verification and testing frameworks.

Formal methods and verification become central to software correctness, with approaches ranging from a logical basis, symbolic execution, termination proofs, to automated program verification [1], [3], [4], [6], [11].

Reliability modeling and quality evaluation are pursued through empirical reliability studies and quantitative metrics, including software reliability theory, empirical models, and quality factors [2], [5], [7], [12], [13], [16], [17], [19].

Testing methodology emphasizes data-driven test generation, fault distribution, and fault causation analyses to benchmark and improve software quality [10], [14], [20].

Software engineering practice and analysis are advanced through structured analysis for requirements definition, process-oriented design, and static analysis of commercial PL/I programs to guide practice [8], [15], [18].

Empirical Software Analysis

1981 - 1994

Architecture-Centric Static Analysis

1995 - 2001

Automated Software Analysis

2002 - 2009

Mobile Software Analysis and Verification

2010 - 2016

Deep Neural Code Analysis

2017 - 2023